Data capture system

ABSTRACT

A data capture system includes: a first capture node including: a first set of image sensors, and a first computing device connected with the first set of image sensors and configured to: control the first set of image sensors to capture respective images of an object within a capture volume; generate a first point cloud based on the images; and transmit the first point cloud to a data capture server for dimensioning of the object; and a second capture node including: a second set of image sensors, and a second computing device connected with the second set of image sensors and configured to: control the second set of image sensors to capture respective images of the object; generate a second point cloud based on the images; and transmit the second point cloud to the data capture server.

BACKGROUND

The transportation and storage of objects such as packages may requireknowledge of the dimensions of a package. Such information may beemployed to optimize the use of available space in a container (e.g. atrailer), to determine a shipping or storage cost for the package, orthe like. Package dimensions, however, may not be known in advance, andworkers may therefore be required to obtain package dimensions bymanually measuring the packages. Taking manual measurements can betime-consuming and error-prone. Systems for automatically measuringpackage dimensions may also suffer from reduced accuracy, for example,when measuring packages in motion, packages with dark (e.g. black)surfaces, and the like.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1 is a block diagram of an example data capture system.

FIG. 2 is a diagram illustrating an example implementation of the datacapture system of FIG. 1.

FIG. 3 is a diagram illustrating an example data capture node in thesystem of FIG. 2.

FIG. 4 is a block diagram illustrating certain internal components ofthe computing device of FIG. 1.

FIG. 5 is a flowchart of a data capture method.

FIG. 6 is a diagram illustrating an example performance of blocks510-520 of the method of FIG. 5.

FIG. 7 is a diagram illustrating an example performance of block 540 ofthe method of FIG. 5.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions of some of the elements inthe figures may be exaggerated relative to other elements to help toimprove understanding of embodiments of the present invention.

The apparatus and method components have been represented whereappropriate by conventional symbols in the drawings, showing only thosespecific details that are pertinent to understanding the embodiments ofthe present invention so as not to obscure the disclosure with detailsthat will be readily apparent to those of ordinary skill in the arthaving the benefit of the description herein.

DETAILED DESCRIPTION

Examples disclosed herein are directed to a data capture systemincluding: a first capture node including: a first set of image sensors,and a first computing device connected with the first set of imagesensors and configured to: control the first set of image sensors tocapture respective images of an object within a capture volume; generatea first point cloud based on the images; and transmit the first pointcloud to a data capture server for dimensioning of the object; and asecond capture node including: a second set of image sensors, and asecond computing device connected with the second set of image sensorsand configured to: control the second set of image sensors to capturerespective images of the object; generate a second point cloud based onthe images; and transmit the second point cloud to the data captureserver.

Additional examples disclosed herein are directed to a method of datacapture, comprising: determining whether to perform a calibration checkfor a set of image sensors; when the determination is affirmative,controlling a projector to illuminate a capture volume with virtualfiducial markers; controlling each of a set of image sensors,simultaneously with the illumination, to capture respective images ofthe capture volume; and determining whether detected positions of thevirtual fiducial markers based on the images match expected positions ofthe virtual fiducial markers; and validating a calibration of the set ofimage sensors when the determination is affirmative.

Further examples disclosed herein are directed to a computing device,comprising: a memory storing calibration data defining relativepositions of a set of image sensors; and a processor configured to:determine whether to perform a calibration check for a set of imagesensors; when the determination is affirmative, control a projector toilluminate a capture volume with virtual fiducial markers; control eachof a set of image sensors, simultaneously with the illumination, tocapture respective images of the capture volume; and determine whetherdetected positions of the virtual fiducial markers based on the imagesmatch expected positions of the virtual fiducial markers; and validate acalibration of the set of image sensors when the determination isaffirmative.

FIG. 1 depicts a data capture system 100 for object dimensioning. Thedata capture system 100 is configured to capture image data depicting anobject 104 within a capture volume defined by the system 100. The imagedata (e.g. a set of two-dimensional images captured substantiallysimultaneously) can be processed to generate a point cloud representingthe object 104 to be dimensioned. Dimensions for the object 104 can thenbe determined, for example by a dimensioning server 108, based on thepoint cloud.

The data capture system includes a plurality of image sensors 112-1,112-2, . . . 112-n. The image sensors 112 may also be referred to ascameras 112. The data capture system also includes a projector 116 (inother examples, multiple projectors 116 may be employed) and a depthsensor 120 (in other examples, depth sensors 120 may be employed). Theprojector 116 is controllable to project a structured light pattern ontothe capture volume, to illuminate the object 104. The structured lightpattern can be selected to be readily detectable in images captured bythe cameras 112, to facilitate generation of the point cloud mentionedabove.

The depth sensor 120 can be a depth camera, such as a time-of-flight(TOF) camera, a lidar sensor, or a combination thereof. As will bediscussed below in greater detail, the depth sensor 120 is employed todetermine certain attributes of the object 104 prior to image capture bythe cameras 112. Based on the attributes determined using the depthsensor 120, configuration parameters can be selected for either or bothof the projector 116 and the cameras 112.

The data capture system also includes a computing device 124 connectedwith the cameras 112, the projector 116 and the depth sensor 120. Thecomputing device 124 can control the cameras 112, the projector 116 andthe depth sensor 120, and can select the above-mentioned configurationparameters, for example based on rules at the computing device 124. Thecomputing device 124 can also generate a point cloud from the imagescaptured by the cameras 112.

As shown in FIG. 1, the cameras 112, the projector 116, the depth sensor120, and the computing device 124 are components of a capture subsystem128-1, also referred to as a capture node 128-1. The data capture system100 may include a plurality of capture subsystems 128, an example 128-Nof which is also shown in FIG. 1. In other words, the data capturesystem 100 can include a plurality of capture nodes 128 (e.g. four nodes128, although greater and smaller numbers of nodes 128 can also bedeployed). Each node 128 may provide coverage, via a field of view (FOV)132 of the cameras 112 of that node 128, of a portion of the capturevolume, such that the nodes 128 together provide full coverage of thecapture volume.

The computing device 124, as well as the respective computing devices ofother capture nodes 128, can generate point cloud data from the imagescaptured by the corresponding cameras 112. The partial point cloudsgenerated by each computing device 124 can be provided, e.g. via anetwork 136, to a data capture server 140. The data capture server 140,in turn, can combine the point clouds received from each node 128 togenerate a combined point cloud, from which the object 104 can beextracted and dimensioned by the dimensioning server 108. Thedimensioning server 108, for example, can be configured to process thepoint cloud and determine at least one dimension (e.g. height, width,length or the like) of the object 104.

Turning to FIG. 2, certain components of the system 100 are shown in anexample deployment. The example deployment shown in FIG. 2 includes fourcapture nodes 128-1, 128-2, 128-3 and 128-4 (referred to collectively asnodes 128 and generically as a node 128). As discussed above, each node128 includes cameras 112 and a computing device 124. Each node 128 canalso include one or more projectors and/or depth sensors 120, althoughin some embodiments, certain nodes 128 may omit either or both of theprojectors 116 and depth sensors 120.

The components of each node 128 can be contained within a housing 200-1,200-2, 200-3, 200-4. For example, as illustrated in FIG. 2 the housings200 can be substantially cylindrical housings, fabricated from anysuitable materials to support the components of the respective nodes.The nodes 128 can be supported, e.g. by a central support structure 204,also referred to as a central pod 204, connected with the nodes 128 viaconduits 208. The nodes 128 can also be supported by trusses or othersupport members extending from a ceiling and/or walls (not shown) of thefacility, in addition to being connected with the central pod 204 viathe conduits 208. The conduits 208 can carry communications and/or powerlines (e.g. cabling) and cooling fluid (e.g. conditioned air or thelike) from a source of cooling fluid such as the central pod 204 to thehousings 200. The central pod 204 can therefore contain cooling or otherconditioning equipment, and may also contain either or both of theserver 108 and the server 140.

As noted earlier, the cameras 112 of the nodes 128 are positioned suchthat the field of view of each camera 112 encompasses at least a portionof a capture volume 212, such as a 10×10×10 foot volume. Further, thefields of view of adjacent cameras 112 within each node 128 overlap,e.g. by about 40%. Together, the cameras 112 of the nodes 128 thusprovide substantially complete coverage of the capture volume 212 (e.g.each position in the capture volume 212 is within the field of view ofat least two cameras 112).

The object 104 may be placed within the capture volume 212 to remainstationary during capture and dimensioning, or the object 104 may betransported through the capture volume 212 in any suitable direction(e.g. the direction 216 indicated in FIG. 2) via any suitable locomotivemechanism. The system 100, in other words, may dimension the object 104at rest or in motion. Example locomotive mechanisms include a forkliftor other vehicle, a conveyor belt, and the like. The system 100 isconfigured to detect when the object 104 has entered the capture volume212, and in response to such detection, to control components thereof inorder to configure the projectors 116 and cameras 112, capture imageswith the cameras 112, and generate point cloud data.

In particular, the computing device 124 of each node 128 is configuredto generate a point cloud from the images captured by the cameras 112 ofthat node 128, independently of the other nodes 128. That is, in theexample illustrated in FIG. 2, four point clouds may be generated inparallel by the nodes 128, to be combined into a single point cloud bythe server 140 for use in dimensioning the object 104.

The point cloud generated by a given node 128 thus depicts a portion ofthe capture volume 212 corresponding to the FOV 132 of that node 128.The point clouds generated by the nodes 128 may use a local frame ofreference specific to each node 128, or may use a common frame ofreference 220 established for the capture volume 212 when the system 100is deployed. When the nodes 128 generate point clouds using the commonframe of reference 220, the computing device 124 of each node 128 canstore calibration data defining the physical position of the cameras 112of that node 128 relative to the origin of the common frame of reference220. When the nodes 128 employ local frames of reference, the server 140can register the node-specific point clouds to the common frame ofreference 220 using the above-mentioned calibration data.

Turning to FIG. 3, a cross section of a single node 128 is shown toillustrate an example arrangement of components within the housing 200of the node 128. As seen in FIG. 3, the housing 200 defines an interiorspace supporting the cameras 112 (four cameras 112-1, 112-2, 112-3 and112-4 are shown in the present example) and projectors 116-1 and 116-2.The node 128 may include as few as two cameras 112, and may omit theprojectors, include a single projector, or include more than twoprojectors. The node 128 illustrated in FIG. 3 also omits the depthsensor 120. The number of cameras 112 included in a node 128, and thenumber of nodes 128 in the system 100 can be selected to balancecomputation speed (with a greater number of nodes, each with its owncomputing device 124, generally increasing system performance), cost(with each node 128 generally increasing the cost of the system), andaccuracy (with a greater number of cameras per node generally increasingaccuracy but decreasing performance).

The housing 200 can support the cameras 112, projectors 116 andcomputing device 124 directly on interior surfaces thereof, of thehousing 200 can include an internal frame on which the components of thenode 128 can be supported. Cables and the like supplying power and datacommunications to the cameras 112, projectors 116 and computing device124 can exit the housing 200 via the conduit 208, towards the centralpod 204. The housing 200 includes a slot, a set of windows or the likepermitting exposure of the cameras 112 and projectors 116 to the capturevolume 212.

The node 128 can also include a notification device, such as indicatorlights 300-1 and 300-2. The indicator lights 300 are controllable by thecomputing device 124 to generate notifications. Example notificationsinclude patterns and colors of illumination to indicate system statusand issue instructions to operators, such as the operator of a forkliftcarrying the object 104. For example, the indicator lights 300 can becontrolled to illuminate in a first color (e.g. green) to instruct theoperator to proceed through the capture volume 212, and in a secondcolor (e.g. red) to instruct the operator to return through the capturevolume 212, for example when the server 140 determines that a capturedpoint cloud included excessive noise. Control of the lights 300,therefore, can be effected by the computing device 124 on the basis ofinstructions received at the computing device 124 from the server 140.

Referring to FIG. 4, certain internal components of the computing device124 are shown. The computing device 124 includes a central processingunit (CPU), also referred to as a processor 400, interconnected with anon-transitory computer readable storage medium, such as a memory 404.The memory 404 includes any suitable combination of volatile memory(e.g. Random Access Memory (RAM)) and non-volatile memory (e.g. readonly memory (ROM), Electrically Erasable Programmable Read Only Memory(EEPROM), flash) memory. The processor 400 and the memory 404 eachcomprise one or more integrated circuits (ICs).

The computing device 124 also includes a communications interface 408,enabling the computing device 124 to exchange data with other computingdevices, such as the dimensioning server 108 and the data capture server140, via the network 136. The communications interface 408 thereforeincludes any suitable hardware (e.g. transmitters, receivers, networkinterface controllers and the like) allowing the computing device 124 tocommunicate over the network 136.

The computing device 124 further includes an input/output interface 412,which may also be referred to as a local communications interface,enabling the computing device 124 to exchange data with devices such asthe cameras 112, projector 116, depth sensor 120, and indicator lights300. In the present example, the interface 412 includes a universalserial bus (USB) interface. The interface 412 can also include adiscrete device, such as a USB hub, connected to the computing device124. Other suitable interface technologies may also be employed for theinterface 412, including Ethernet, Wi-Fi, Thunderbolt™ and the like.

The computing device 124 can also include input devices (e.g. akeyboard, a mouse, a microphone, or the like) and output devices (e.g. adisplay, a speaker or the like), not shown. The components of thecomputing device 124 are interconnected by communication buses (notshown), and powered by a battery or other power source, over theabove-mentioned communication buses or by distinct power buses (notshown).

The memory 404 of the computing device 124 stores a plurality ofapplications, each including a plurality of computer readableinstructions executable by the processor 400. The execution of theabove-mentioned instructions by the processor 400 causes the computingdevice 124 to implement certain functionality, as discussed herein. Theapplications are therefore said to be configured to perform thatfunctionality in the discussion below. In the present example, thememory 404 of the computing device 124 stores a point cloud generatorapplication 416 (also referred to herein simply as the application 416).

The computing device 124 is configured, via execution of the application416 by the processor 400, to control the cameras 112 and projectors 116to capture a set of images (e.g. simultaneously with illumination of theobject 104 with the projectors 116), and to generate point cloud databased on the captured images. The generation of a point cloud from theset of images can be performed according to a suitable set ofphotogrammetry operations. The computing device 124 is also configuredto perform certain additional functions that may increase the accuracyof the resulting point cloud data.

The application 316 can, in other examples, be implemented as multiplediscrete applications. In other examples, the processor 400, asconfigured by the execution of the application 316, is implemented asone or more specifically-configured hardware elements, such asfield-programmable gate arrays (FPGAs) and/or application-specificintegrated circuits (ASICs).

Turning now to FIG. 5, a method 500 of data capture for objectdimensioning is illustrated. The method 500 will be described inconjunction with its performance in the data capture system shown inFIGS. 1 and 2. In particular, the method 500 illustrates actions takenby the computing device 124 of each node 128. That is, to obtain a pointcloud depicting the capture volume 212 for use in dimensioning theobject 104, each node 128 may perform the method 500 in parallel withthe other nodes 128, to generate several (four, in the illustratedexamples) point clouds which are subsequently combined by the server140.

At block 505, the computing device 124 is configured to determinewhether to perform a calibration check. As noted earlier, the computingdevice 124 stores calibration data defining the relative positions ofthe cameras 112 and projectors 116 of the corresponding node 128, aswell as the positions of the cameras 112 and projectors 116 relative tothe origin of the frame of reference 220. The calibration data isgenerated when the system 100 is deployed, based on the physicalpositions at which the nodes 128 and their components are installed inthe facility. Impacts or other environmental factors, however, can shiftone or more components of a node 128, resulting in a change to thephysical position of the node 128 or its components. The calibrationdata, in such instances, may no longer accurately reflect the truephysical positions of the components of the system 100.

When determination at block 505 can be based on a schedule, e.g.defining a frequency at which to perform a calibration check. Thefrequency can be based on a number of capture operations, or a number ofdays, hours, or the like. In other examples, the determination at block505 includes determining whether an instruction has been received (e.g.from an operator of the system 100) to perform the calibration check.Thus, the computing device 124 can determine, at block 505, whether apredefined interval (e.g. in time or in number of data captures) haselapsed.

When the determination at block 505 is negative, the computing device124 proceeds to data capture operations, as will be discussed in greaterdetail below. When the determination at block 505 is affirmative,however, the computing device 124 proceeds to block 510.

At block 510, the computing device controls the projectors 116 toproject virtual fiducial markers into the capture volume 212 atpredetermined positions. For example, the computing device 124 can storea calibration image that contains the virtual markers, and at block 510can transmit the calibration image to the projector(s) 116 forprojection into the capture volume 212.

At block 515, simultaneously with the projection of the calibrationimage, the computing device 124 controls at least a subset of thecameras 112 of the relevant node 128 to each capture an image of thecapture volume 212. As will be apparent, the images captured at block515 contain at least a portion of the virtual markers projected at block510. The computing device 124 is configured to identify the virtualmarkers in the captured images (e.g. based on any one or more ofintensity thresholds, edge detections, detecting portions of the imageswith predefined colors, or the like).

The computing device 124 is then configured, at block 520, to determinewhether the positions of the markers in the captured images deviate fromthe expected positions of the markers, e.g. by more than a predefinedthreshold. When the determination at block 520 is negative, thecomputing device 124 can proceed to data capture operations, asdiscussed below in greater detail. The computing device 124 can alsogenerate a message, signal or the like validating the calibration. Whenthe determination at block 520 is affirmative, however, indicating thatcalibration of the cameras 112 is no longer accurate, the computingdevice 124 generates an alert at block 525. The alert can includeillumination of the indicator lights 300, transmission of a message tothe server 140 or another computing device, or a combination thereof.

FIG. 6 illustrates an example performance of the calibrationverification procedure of blocks 510-520. The projection of virtualmarkers 600 at block 510 is followed by the capture of an image 604 thatcontains the virtual markers 600. Based on the calibration data and thecalibration image, the computing device 124 determines the expectedpositions 608 of the markers 600, and at block 520 determines a distancebetween observed and expected positions (i.e. between correspondingpairs of markers 600 and expected positions 608). When the distancedetermined at block 520 exceeds a threshold, the calibration isconsidered to have become inaccurate, and an alert is generated at block525.

Returning to FIG. 5, when the determination at blocks 505 or 520 isnegative, the computing device 124 proceeds to block 530, to begin aprocess of capturing data for point cloud generation.

At block 530, the computing device 124 is configured to determinewhether an object (e.g. the object 104) is detected within the capturevolume 212, or adjacent to the capture volume 212. In some examples, thecomputing device 124 controls at least one of the cameras 112 to capturea sequence of images (e.g. a video stream), and processes the sequenceof images to detect objects in motion therein. When the processingindicates that an object has entered the capture volume 212, or isapproaching the capture volume 212, the determination at block 530 isaffirmative. In other examples, the depth sensor 120 can be employed forobject detection instead of, or in addition to, the cameras 112 asdescribed above.

In further examples, the determination at block 530 includes determiningwhether a detection signal has been received at the computing device124, e.g. from the data capture server 140. For example, the datacapture system 100 can include a detection sensor such as a lidarsensor, an IR beam sensor or the like that is triggered when the object104 enters the capture volume 212. The data capture server 140 can beconnected to the detection sensor, and can send the detection signal tothe computing device 124 (e.g. to the computing devices 124 of each node128) when such triggering is detected.

When the determination at block 530 is negative, the computing device124 continues monitoring for an object detection at block 530. When thedetermination at block 530 is affirmative, however, the computing device124 proceeds to block 535.

At block 535 the computing device 124 is configured to control theprojector(s) 116 to illuminate the capture volume 212 with a suitablepattern of structured light. The computing device 124 is also configuredto control the cameras 112 to capture images simultaneously withillumination of the capture volume 212 by the projector(s) 116. In someexamples, prior to performing block 535, the computing device 124 awaitsa further detection signal. For example, when the detection at block 530is that the object 104 is approaching the capture volume 212, at block535 the computing device 124 can await a detection that the object 104has entered the capture volume 212.

At block 540, having captured a set of images of the object 104 viacontrol of the cameras 112 and the projectors 116, the computing device124 can be configured to detect and substitute virtual fiducial markersprojected into the capture volume 212 by the projector(s) 116. Thevirtual fiducial markers detected at block 540 need not be the same asthe markers 600 used for calibration. The fiducial markers detected atblock 540 are those projected at block 535, and can be selected from awide variety of markers, based on attributes of the object 104 and/orenvironmental conditions (e.g. ambient light levels).

Turning to FIG. 7, an image 700 captured by one of the cameras 112 of anode 128 is shown, in which virtual markers 704 projected by a projector116 are visible on the object 104. As seen in FIG. 7, the shapes andsizes of the markers 704 (which may be projected as circles, forexample) changes based on which surface of the object 104 they appearon. At block 540, the computing device 124 is configured to detect themarkers 704, for example by detecting portions of increased intensity,portions having a certain color, or the like (based on predefinedattributes of the markers as emitted by the projector(s) 116). Thecomputing device 124 is then configured to replace the markers 704 witha reference marker 708, as shown in the modified image 712 in FIG. 7.The reference markers 708, as illustrated, do not vary with surfaceorientation, illumination or the like, and may therefore be more readilydetectable by the photogrammetry operations applied later in the method500. The reference markers 708 may be placed in the image 712 centeredon the centroids of the markers 704.

Returning to FIG. 5, at block 545, following insertion of the referencemarkers 708 into the captured images, the computing device 124 isconfigured to generate a point cloud from the images (specifically, themodified images, such as the image 712), representing at least a portionof the object 104. As noted above, the point cloud data may be generatedat block 545 via application of suitable photogrammetry operations tothe images captured at block 535 and modified at block 540.

At block 550, the computing device 124 can be configured to apply anoise filter to the point cloud resulting from the performance of block545. As will be apparent to those skilled in the art, the point cloudgenerated at block 545 may include a degree of noise (e.g. pointsindicating the presence of an object where no object is in factpresent). Various suitable noise filters for application to point cloudswill occur to those skilled in the art, including for example abilateral filter. Bilateral filters, in general, adjust attributes ofeach point (e.g. the position of the point) based on attributes ofneighboring points (e.g. based on the distances between the point to beadjusted and its neighbors).

In some examples, the computing device 124 can select between multiplenoise reduction operations at block 550. For example, the computingdevice can generate a noise estimate indicating how noisy the pointcloud is, and based on the noise estimate, select between at least twonoise reduction operations. For example, if the estimated noise level inthe point cloud is above a noise threshold, the computing device 124 canselect a first noise filter, and if the estimated noise level is belowthe threshold, the computing device 124 can select a second noisefilter. The first noise filter can be, for example, a bilateral filter,while the second filter can be a less computationally costly mechanism,such as a bilateral filter with an upper boundary on the number ofneighbor points to consider in adjusting each point (e.g. 500neighbors).

When the noise reduction operation is applied at block 550, thecomputing device 124 can be configured to transmit the point cloud fordimensioning. For example, the point cloud can be transmitted to thedata capture server 140, which also receives point clouds from the othernodes 128 and combines the point clouds into a single point cloudrepresentation of the capture volume. The combined point cloud may thenbe transmitted to the dimensioning server 108, which is configured todetect and dimension the object 104.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes can be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The invention is definedsolely by the appended claims including any amendments made during thependency of this application and all equivalents of those claims asissued.

Moreover in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has”,“having,” “includes”, “including,” “contains”, “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . .a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially”, “essentially”,“approximately”, “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 5%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

It will be appreciated that some embodiments may be comprised of one ormore specialized processors (or “processing devices”) such asmicroprocessors, digital signal processors, customized processors andfield programmable gate arrays (FPGAs) and unique stored programinstructions (including both software and firmware) that control the oneor more processors to implement, in conjunction with certainnon-processor circuits, some, most, or all of the functions of themethod and/or apparatus described herein. Alternatively, some or allfunctions could be implemented by a state machine that has no storedprogram instructions, or in one or more application specific integratedcircuits (ASICs), in which each function or some combinations of certainof the functions are implemented as custom logic. Of course, acombination of the two approaches could be used.

Moreover, an embodiment can be implemented as a computer-readablestorage medium having computer readable code stored thereon forprogramming a computer (e.g., comprising a processor) to perform amethod as described and claimed herein. Examples of suchcomputer-readable storage mediums include, but are not limited to, ahard disk, a CD-ROM, an optical storage device, a magnetic storagedevice, a ROM (Read Only Memory), a PROM (Programmable Read OnlyMemory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM(Electrically Erasable Programmable Read Only Memory) and a Flashmemory. Further, it is expected that one of ordinary skill,notwithstanding possibly significant effort and many design choicesmotivated by, for example, available time, current technology, andeconomic considerations, when guided by the concepts and principlesdisclosed herein will be readily capable of generating such softwareinstructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separately claimed subject matter.

1. A data capture system, comprising: a first capture node including: afirst set of image sensors, and a first computing device connected withthe first set of image sensors and configured to: control the first setof image sensors to capture respective images of an object within acapture volume; generate a first point cloud based on the images; andtransmit the first point cloud to a data capture server for dimensioningof the object; and a second capture node including: a second set ofimage sensors, and a second computing device connected with the secondset of image sensors and configured to: control the second set of imagesensors to capture respective images of the object; generate a secondpoint cloud based on the images; and transmit the second point cloud tothe data capture server.
 2. The data capture system of claim 1, whereinthe second computing device is configured to control the second set ofimage sensors simultaneously with control of the first set of imagesensors by the first computing device.
 3. The data capture system ofclaim 1, further comprising: a first housing supporting the first set ofimage sensors and the first computing device; and a second housingsupporting the second set of image sensors and the second computingdevice.
 4. The data capture system of claim 3, wherein the first andsecond housings are substantially cylindrical.
 5. The data capturesystem of claim 1, wherein the first capture node is disposed at a firstposition adjacent to the capture volume, and wherein the second capturenode is disposed at a second position adjacent to the capture volume. 6.The data capture system of claim 1, wherein the first capture nodefurther comprises: a projector controllable by the first computingdevice to project a structured light pattern onto the objectsimultaneously with control of the first set of image sensors.
 7. Thedata capture system of claim 3, wherein the first capture node furthercomprises: an indicator light supported by the first housing, theindicator light controllable by the first computing device to generate anotification.
 8. The data capture system of claim 3, further comprising:a first conduit extending from the first housing to carry cooling fluidfrom a cooling fluid source.
 9. The data capture system of claim 8,wherein the first conduit carries communication lines connected to thefirst computing device.
 10. The data capture system of claim 1, furthercomprising: a third capture node including: a third set of imagesensors, and a third computing device connected with the third set ofimage sensors and configured to: control the third set of image sensorsto capture respective images of the object; generate a third point cloudbased on the images; and transmit the third point cloud to the datacapture server.
 11. A method of data capture, comprising: determiningwhether to perform a calibration check for a set of image sensors; whenthe determination is affirmative, controlling a projector to illuminatea capture volume with virtual fiducial markers; controlling each of aset of image sensors, simultaneously with the illumination, to capturerespective images of the capture volume; and determining whetherdetected positions of the virtual fiducial markers based on the imagesmatch expected positions of the virtual fiducial markers; and validatinga calibration of the set of image sensors when the determination isaffirmative.
 12. The method of claim 11, wherein determining whether toperform the calibration check includes determining whether a predefinedinterval has elapsed.
 13. The method of claim 11, wherein determiningwhether the detected positions match the expected positions includes,for each detected position: determining a distance between the detectedposition and the expected position; and determining whether the distanceexceeds a validation threshold.
 14. The method of claim 11, furthercomprising: controlling the projector to illuminate the capture volumewith further fiducial markers; controlling the image sensors to capturea set of images of the capture volume; detecting the further fiducialmarkers in the images; substituting the further fiducial markers in theimages with reference markers to generate modified images; andgenerating a point cloud based on the modified images.
 15. The method ofclaim 14, further comprising: selecting a noise reduction operation; andapplying the noise reduction operation to the point cloud.
 16. Acomputing device, comprising: a memory storing calibration data definingrelative positions of a set of image sensors; and a processor configuredto: determine whether to perform a calibration check for a set of imagesensors; when the determination is affirmative, control a projector toilluminate a capture volume with virtual fiducial markers; control eachof a set of image sensors, simultaneously with the illumination, tocapture respective images of the capture volume; and determine whetherdetected positions of the virtual fiducial markers based on the imagesmatch expected positions of the virtual fiducial markers; and validate acalibration of the set of image sensors when the determination isaffirmative.
 17. The computing device of claim 16, wherein the processoris further configured, in order to determine whether to perform thecalibration check, to determine whether a predefined interval haselapsed.
 18. The computing device of claim 16, wherein the processor isfurther configured, in order to determine whether the detected positionsmatch the expected positions, for each detected position, to: determinea distance between the detected position and the expected position; anddetermine whether the distance exceeds a validation threshold.
 19. Thecomputing device of claim 16, wherein the processor is furtherconfigured to: control the projector to illuminate the capture volumewith further fiducial markers; control the image sensors to capture aset of images of the capture volume; detect the further fiducial markersin the images; substitute the further fiducial markers in the imageswith reference markers to generate modified images; and generate a pointcloud based on the modified images.
 20. The computing device of claim19, wherein the processor is further configured to: select a noisereduction operation; and apply the noise reduction operation to thepoint cloud.